головне меню список тем тестування презентації історія створення

 

8.2. Системна магістраль ISA

Системна шина (магістраль) ISA була розроблена спеціально для персональних комп'ютерів типа IBM PC AT і є фактичним стандартом. В той же час, відсутність офіційного міжнародного статусу магістралі ISA (вона не затверджена як стандарт жодним міжнародним комітетом із стандартизації) призводить до того, що багато виробників допускають деякі відхилення від фірмового стандарту.
ISA з'явилася розширенням магістралі комп'ютерів IBM PC і IBM PC XT. В ній була збільшена кількість розрядів адреси і даних, збільшено число ліній апаратних переривань і каналів ПДП, а також підвищена тактова частота. До 62-контактного роз'єму колишньої магістралі був доданий 36-контактний новий роз'єм. Проте, сумісність була збережена, і плата, призначена для IBM PC XT, підійде і для IBM PC AT. Характерна відмінність ISA полягає в тому, що її тактовий сигнал не співпадає з тактовим сигналом процесора, як це було в IBM PC XT, тому швидкість обміну по ній не пропорційна тактовій частоті процесора.
Магістраль ISA відноситься до немультиплексованих (тобто має роздільні шини адреси і даних) 16-розрядних системних магістралей середньої швидкодії. Обмін здійснюється 8-ми або 16-ти розрядними даними. На магістралі реалізований роздільний доступ до пам'яті комп'ютера і до пристроїв вводу/виводу (для цього є спеціальні сигнали). Максимальний об'єм пам'яті, що адресується, складає 16 Мбайт (24 адресні лінії). Максимальний адресний простір для пристроїв вводу/виводу - 64 Кбайт (16 адресних ліній), хоча практично вся плата розширення, що випускається, використовує тільки 10 молодших адресних ліній (1 Кбайт). Магістраль підтримує регенерацію динамічної пам'яті, радіальні переривання і прямий доступ до пам'яті. Допускається також захоплення магістралі.
Роз'єм магістралі ISA роздільний на дві частини, що дозволяє зменшувати розміри 8-розрядної плати розширення, а також використовувати плату, розроблену для комп'ютерів IBM PC XT. Зовнішній вигляд плати розширення показаний на мал. 8.1. Призначення контактів роз'ємів представлено в табл. 8.1 і 8.2 . На магістралі присутні чотири напруги живлення: +5 В, -5 В +12 В і -12 В, які можуть використовуватися платою розширення.
В ролі задатчика (Master) магістралі можуть виступати процесор, контролер ПДП, контролер регенерації або інший пристрій. Виконавцями (Slave) можуть бути системні пристрої комп'ютера, підключені до ISA, або плати (карти) розширення.
Найпоширеніше конструктивне виконання магістралі - роз'єми (слоти), всі однойменні контакти яких паралельно сполучені між собою, тобто всі роз'єми абсолютно рівноправні. В слоти встановлюється плата розширення, яка оснащена інтерфейсними роз'ємами магістралі, виконаними друкарськими провідниками на краю плати. Кількість настановних місць для плати розширення залежить від типу корпусу комп'ютера і складає звичайно від 2 до 8 і навіть більше.




Мал. 8.1. Нумерація контактів роз'єму ISA (для IBM PC XT - тільки А1 ... А31 і В1 ... В31).

В таблицях 8.1  і 8.2  знак мінус перед назвою сигналу говорить про те, що активному (робітнику) рівню сигналу відповідає низький рівень напруги на відповідній лінії магістралі. На лініях адреси і даних логічному нулю відповідає низький рівень напруги, а одиниці - високий (тобто логіка позитивна).

 Таблиця 8.1. Призначення контактів роз'єму магістралі ISA
(продовження в Табл. 8.2).                                       


Контакт

Коло

Контакт

Коло

A1

–I/O CH CK

B1

GND

A2

SD7

B2

RESET DRV

A3

SD6

B3

+5 В

A4

SD5

B4

IRQ9 (IRQ2)

A5

SD4

B5

–5 В

A6

SD3

B6

DRQ2

A7

SD2

B7

–12 B

A8

SD1

B8

0WS

A9

SD0

B9

+12 B

A10

I/O CH RDY

B10

GND

A11

AEN

B11

–SMEMW

A12

SA19

B12

–SMEMR

A13

SA18

B13

–IOW

A14

SA17

B14

–IOR

A15

SA16

B15

–DACK3

A16

SA15

B16

DRQ3

A17

SA14

B17

–DACK1

A18

SA13

B18

DRQ1

A19

SA12

B19

–REFRESH

A20

SA11

B20

SYSCLK

A21

SA10

B21

IRQ7

A22

SA9

B22

IRQ6

A23

SA8

B23

IRQ5

A24

SA7

B24

IRQ4

A25

SA6

B25

IRQ3

A26

SA5

B26

–DACK2

A27

SA4

B27

T/C

A28

SA3

B28

BALE

A29

SA2

B29

+5 B

A30

SA1

B30

OSC

A31

SA0

B31

GND

Таблиця 8.2. Призначення контактів роз'єму магістралі ISA
(початок в Табл. 8.1).                                                     


Контакт

Коло

Контакт

Коло

C1

-SBHE

D1

–MEM CS16

C2

LA23

D2

–I/O CS16

C3

LA22

D3

IRQ10

C4

LA21

D4

IRQ11

C5

LA20

D5

IRQ12

C6

LA19

D6

IRQ15

C7

LA18

D7

IRQ14

C8

LA17

D8

–DACK0

C9

–MEMR

D9

DRQ0

C10

–MEMW

D10

–DACK5

C11

SD8

D11

DRQ5

C12

SD9

D12

–DACK6

C13

SD10

D13

DRQ6

C14

SD11

D14

–DACK7

C15

SD12

D15

DRQ7

C16

SD13

D16

+5 B

C17

SD14

D17

–MASTER

C18

SD15

D18

GND

8.2.1. Призначення сигналів ISA

Коротко про сигнали ISA вже мовилося в розділі 2.2. Розглянемо призначення основних, часто використовуються сигналів магістралі ISA докладніше.

  • SA0...SA19 - адресні розряди, що фіксуються (вони дійсні протягом всього циклу обміну). 16-розрядним словам відповідають парні адреси (SA0=0).
  • LA17...LA23 - адресні розряди, що не фіксуються. Використовуються для адресації пам'яті. Дійсні тільки на початку циклу обміну (в адресній фазі).
  • BALE - сигнал стробування адресних розрядів (дійсності адреси відповідає негативний фронт сигналу). Основне призначення - фіксація нефіксованих адресних розрядів в регістрі-клямці.
  • -SBHE - сигнал типу циклу передачі даних (8-ми або 16-розрядний цикл). Активний при передачі старшого байта.
  • SD0...SD15 - розряди даних. По лініях SD0...SD7 передається молодший байт, по лініях SD8...SD15 - старший байт.
  • -SMEMR, -MEMR - строби читання даних з пам'яті. Сигнал -SMEMR виробляється тільки при зверненні до адрес, що неперевищують FFFFF (що знаходяться в межах молодшого 1 Мбайта), а сигнал -MEMR - при зверненні до всіх адрес пам'яті.
  • -SMEMW, -MEMW - строби запису даних в пам'ять. Сигнал -SMEMW виробляється тільки при зверненні до адрес, що неперевищують FFFFF (що знаходиться в межах молодшого 1 Мбайта), сигнал -MEMW - при зверненні до всіх адрес пам'яті.
  • -IOR - строб читання даних з пристроїв вводу/виводу. При активному сигналі пристрій вводу/виводу, що адресується, повинен видати свої дані на шину даних.
  • -IOW - строб запису даних в пристрої вводу/виводу. По цьому сигналу пристрій вводу/виводу, що адресується, повинен прийняти дані з шини даних.
  • -MEM CS16 - сигнал виставляється пам'яттю для повідомлення задатчику про те, що вона має 16-розрядну організацію. Виробляється у відповідь на розпізнавання адреси пам'яті.
  • -I/O CS16 - сигнал виставляється пристроєм вводу/виводу для повідомлення задатчику про те, що він має 16-розрядну організацію, і необхідний 16-розрядний цикл обміну. Виробляється у відповідь на розпізнавання своєї адреси.
  • I/O CH RDY - сигнал знімається (робиться низьким) виконавцем (пристроєм вводу/виводу або пам'яттю) по передньому фронту сигналів -IOR і -IOW у випадку, якщо він не встигає виконати потрібну операцію в темпі задатчика. Тобто цей сигнал використовується для асинхронного обміну по магістралі.
  • -I/O CH CK - сигнал виробляється будь-яким виконавцем (пристроєм вводу/виводу або пам'яттю) для інформування задатчика про фатальну помилку, наприклад, про помилку парності при доступі до пам'яті.
  • -0WS - сигнал виставляється виконавцем для інформування задатчика про необхідність проведення циклу обміну без вставки такту очікування.
  • -REFRESH - сигнал регенерації, виставляється контролером регенерації для інформування всіх пристроїв на магістралі про виконання циклів регенерації динамічної пам'яті комп'ютера.
  • RESET DRV - сигнал скидання в початковий стан всіх пристроїв на магістралі. Виробляється центральним процесором при включенні або збої живлення, а також при натисненні на кнопку скидання RESET комп'ютера.
  • SYSCLK - сигнал системного тактового генератора, тактовий сигнал магістралі. В більшості комп'ютерів його частота рівна 8 Мгц незалежно від тактової частоти процесора.
  • OSC - не синхронізований з SYSCLK сигнал кварцового генератора з частотою 14,31818 Мгц.
  • IRQ - сигнали запиту радіальних переривань. Запитом є позитивний перехід на відповідній лінії IRQ.
  • DRQ - сигнали запиту ПДП.
  • -DACK - сигнали надання ПДП.
  • AEN - сигнал вибору пристрою, що запитав ПДП. Відключає всю решту пристроїв, що не беруть участь в даному циклі ПДП.

8.2.2. Цикли обміну по ISA

Про цикли обміну по магістралі ISA вже згадувалося в розділі 2.2. Тут ми розглянемо їх дещо докладніше, на рівні, достатньому для практичного використовування.
В режимі програмного обміну інформацією на магістралі ISA виконується чотири типи циклів:

  • цикл запису в пам'ять;
  • цикл читання з пам'яті;
  • цикл запису в пристрій вводу/виводу;
  • цикл читання з пристрою вводу/виводу.

Цикли обміну з пам'яттю і з пристроями вводу/виводу розрізняються між собою стробами запису і читання, що використовуються, а також тимчасовими затримками між сигналами.
Цикл обміну з пристроями вводу/виводу починається з виставляння задатчиком коду адреси на лініях SA0...SA15 і сигналу -SBHE, що визначає розрядність інформації. Частіше за все використовуються тільки 10 молодших ліній SA0...SA9, оскільки більшість розроблених раніше плат розширення задіюють тільки їх. У відповідь на отримання адреси виконавець, що розпізнав свою адресу, повинен сформувати сигнал -I/O CS16 у випадку, якщо обмін повинен бути 16-розрядним. Далі слідує власне команда читання або запису.
При циклі читання задатчик виставляє сигнал -IOR, у відповідь на який виконавець повинен видати дані на шину даних. Ці дані повинні бути зняті виконавцем після закінчення сигналу -IOR.
В циклі запису задатчик виставляє записувані дані і супроводжує їх стробом запису -IOW. Виконавець повинен прийняти ці дані (для гарантії - по задньому фронту сигналу -IOW).
На мал. 8.2  приведені тимчасові діаграми циклів обміну з пристроями вводу/виводу. Для простоти на одному малюнку показані як цикл запису, так і цикл читання, хоча проводяться вони, звичайно, в різний час.
Якщо виконавець не встигає виконати команду в темпі магістралі, він може припинити на ціле число періодів Т сигналу SYSCLK завершення циклу читання або запису за рахунок зняття (перекладу в низький рівень) сигналу I/O CH RDY (так званий подовжений цикл). Це проводиться у відповідь на отримання переднього фронту сигналу -IOR або -IOW. Сигнал I/O CH RDY може утримуватися низьким не більше 15,6 мкс, інакше процесор переходить в режим обробки немаскованого переривання NMI.



Мал. 8.2. Тимчасові діаграми циклів програмного обміну з пристроями вводу/виводу (всі інтервали в наносекундах).

Розробнику ISA-пристроїв необхідно, перш за все, звертати увагу на ті тимчасові інтервали, які пов'язані з швидкодією апаратури цих пристроїв. Наприклад, на обробку адреси селектору адреси відводиться не більше 91 нс, а буфер даних в циклі читання повинен видавати дані на магістраль не більше ніж за 110 нс.
При циклах програмного обміну з пам'яттю використовуються ті ж самі сигнали, тільки замість строба читання -IOR застосовуються строби читання -MEMR і -SMEMR, а замість строба запису -IOW - строби запису -MEMW і -SMEMW. Для визначення байтового або словного формату даних застосовується сигнал -MEM CS16. Для асинхронного режиму обміну (подовженого циклу) тут також використовується сигнал I/O CH RDY. Відзначимо, що пам'ять повинна обробляти всі адресні розряди магістралі, включаючи і LA17...LA23.
На мал. 8.3  показана тимчасова діаграма обміну з пам'яттю, причому тут вказані тільки тимчасові інтервали, відмінні від аналогічних інтервалів на мал. 8.2 . Для простоти на одному малюнку показані як цикл запису в пам'ять, так і цикл читання з пам'яті.
У разі циклів прямого доступу до пам'яті (ПДП) використовується інший протокол обміну. Оскільки магістраль ISA має роздільні строби читання і запису для пристроїв вводу/виводу і для пам'яті, пересилка даних в режимі ПДП проводиться за один машинний цикл. Тобто якщо дані треба переслати з пристрою вводу/виводу в пам'ять, то одночасно проводиться читання даних з пристрою вводу/виводу і їх запис в пам'ять (по сигналу -MEMW). Аналогічно здійснюється пересилка даних з пам'яті в пристрій вводу/виводу (по сигналах -MEMR і -IOW).



Мал. 8.3. Тимчасові діаграми циклів програмного обміну з пам'яттю (всі інтервали в наносекундах).

Цикл ПДП (мал. 8.4) починається із запиту ПДП від виконавця, що хоче провести обмін, за допомогою одного з сигналів DRQ. Після звільнення магістралі поточним задатчиком (наприклад, процесором) контролер ПДП через час t формує відповідний сигнал -DACK, говорячий про надання ПДП тому пристрою, що запитав його.
Потім контролер ПДП виробляє адресу елемента пам'яті, з якою проводитиметься обмін в поточному циклі, і сигнал AEN, який говорить пристрою вводу/виводу про те, що до нього йде звертання в режимі ПДП. Після цього виставляється строб читання (-IOR або -MEMR), у відповідь на яке джерело передаваних даних виставляє свою інформацію на шину даних, і строб запису (-MEMW або -IOW), по якому дані записуються в приймач даних. Тут так само, як і в звичайному циклі, можливий асинхронний обмін (подовжений цикл) з використанням сигналу I/O CH RDY. Для простоти на одному малюнку показано два цикли: передачі з пам'яті в пристрій вводу/виводу і передачі з пристрою вводу/виводу в пам'ять. Тимчасові інтервали цих двох циклів дещо розрізняються.

 



Мал. 8.4. Тимчасова діаграма циклів прямого доступу до пам'яті (всі інтервали в наносекундах).


При апаратних перериваннях протокол обміну зовсім простій, оскільки переривання використовуються радіальні. Виконавець, що хоче  ініціювати переривання, виставляє свій запит (позитивний перехід на одній з ліній IRQ) на магістраль. Контролер переривань, одержавши цей запит, перетворить його в запит переривань процесора. Процесор, закінчивши виконання поточної команди, переходить на адресу початку програми обробки даного переривання, яка однозначно визначається по номеру сигналу IRQ, що використовується. Після обробки переривання процесор повертається до основної програми.
Для проведення регенерації динамічної пам'яті комп'ютера використовуються спеціальні цикли регенерації (мал. 8.5).



Мал. 8.5. Тимчасові діаграми циклів регенерації на ISA (всі інтервали вказані в наносекундах).

Такі цикли виконує контролер регенерації, який повинен для цього одержувати управління магістраллю кожні 15 мікросекунд. Під час циклу регенерації проводиться читання однієї з 256 елементів пам'яті (для адресації при цьому використовуються тільки вісім молодших розрядів адреси SA0...SA7). Читана інформація ніде не застосовується, тобто це цикл псевдочитання. Проведення 256 циклів регенерації, тобто псевдочитання з 256 послідовних адрес пам'яті, забезпечує повне оновлення інформації в пам'яті і її безперервне збереження. Якщо з якихось причин цикл регенерації пам'яті не проводиться вчасно, можлива втрата інформації.
Цикл регенерації включає виставляння сигналу -REFRESH, сигналів коду адреси SA0...SA7 і строба читання з пам'яті -MEMR. У разі потреби може використовуватися сигнал I/O CH RDY, що забезпечує асинхронний обмін.
При включенні живлення, а також при натисненні кнопки RESET на передній панелі комп'ютера на магістралі виробляється сигнал RESET DRV, який використовується всіма пристроями, підключеними до магістралі для скидання в початковий стан і відключення від магістралі.
Захоплення магістралі стороннім задатчиком, у принципі, передбачена стандартом, використовується на практиці досить рідко, оскільки вимагає від пристрою, що захопив магістраль, повного управління нею, включаючи і підтримку періодичної регенерації пам'яті.
Електричні характеристики магістралі пред'являють жорсткі вимоги до всіх пристроїв, що підключаються, по величині вхідних і вихідних струмів, а також по споживаній потужності. Інакше можливий вихід з ладу всього комп'ютера в цілому.

Стандарт визначає, що вихідний струм будь-якого джерела магістральних сигналів не повинен бути менше 24 мА, а вхідний струм будь-якого приймача магістральних сигналів не повинен перевищувати 0,8 мА. Крім того, порушення в роботі комп'ютера може викликати недотримання тимчасових обмежень, що накладаються протоколами обміну, що використовуються, у всіх розглянутих циклах.

8.2.3. Розподіл ресурсів комп'ютера

Крім архітектури апаратних засобів і параметрів системної шини специфіка будь-якого комп'ютера визначається прийнятим стандартним розподілом всіх його ресурсів. Дотримувати правила, встановлені цим розподілом, повинні і програмісти (як системні, так і ті що займаються розробкою прикладних програм), і розробники додаткового устаткування, і навіть ті користувачі, які просто хочуть встановити в комп'ютер нову плату розширення. У разі щонайменшого порушення цих правил можливі як непередбачувані збої в роботі комп'ютера, неможливість його початкового завантаження, так і повний вихід комп'ютера з ладу.
Під розподілом ресурсів в даному випадку розуміється:

  • розподіл адресного простору системної пам'яті, відведення окремих областей пам'яті під особливі цілі;
  • розподіл адресного простору пристроїв вводу/виводу, у тому числі для системних засобів комп'ютера;
  • розподіл каналів запиту переривань, у тому числі для системних пристроїв;
  • розподіл каналів запиту прямого доступу до пам'яті.

Зрозуміло, що якщо програміст схоче використовувати ті адреси пам'яті, які відведені для системних потреб (наприклад, для пам'яті дисплея або системних таблиць), то працездатність комп'ютера порушиться. Якщо виконувана програма спробує записати яку-небудь інформацію за тими адресами системної пам'яті, які стандартом відведені під постійну пам'ять (ROM), то записувана інформація буде просто втрачена, і програма працювати не буде. Якщо писати інформацію за тими адресами пам'яті, які відведені під відеопам'ять, то спотворюватиметься зображення на екрані відеомонітора.
Якщо плата розширення, що вставляється в комп'ютер, використовує неправильні (зайняті іншими пристроями) адреси в адресному просторі пам'яті, то її робота буде неможлива, і не виключений навіть вихід з ладу апаратури комп'ютера (оскільки при циклах читання з адрес пам'яті, що перекриваються, два пристрої виставлятимуть свої дані на шину одночасно, що може стати причиною вигоряння буферних мікросхем).
Якщо розробник плати розширення з пристроєм вводу/виводу або користувач, що підключає нову плату розширення, встановлять адресу свого пристрою так, що він співпадатиме з адресою системного пристрою або адресою іншої плати розширення, то можливі конфлікти при зверненні до даного пристрою. При цьому в циклі запису інформація записуватиметься не в одне, а в два або більш пристроїв, а в циклі читання на шину даних одночасно виставлятимуть свої дані не одне, а декілька пристроїв. Тобто в циклі запису можливе порушення встановлених режимів роботи системних пристроїв (наприклад, контролера переривань або контролера ПДП) або неправильна робота нової плати розширення, а в циклі читання - навіть вихід з ладу одного з пристроїв, що виставляють свої дані на магістраль одночасно.
Якщо при підключенні до комп'ютера нової плати розширення встановити для неї неправильний канал запиту переривання, це може привести до того, що дане переривання просто не обслуговуватиметься. Може також перестати обслуговуватися переривання від системного пристрою, з яким конфліктує нова плата. У гіршому разі це може викликати вихід з ладу нової плати розширення або ж системного пристрою.
Так само при неправильному виборі номера каналу запиту прямого доступу до пам'яті може перестати обслуговуватися запит ПДП системного пристрою, а може вийти з ладу системний пристрій або нова плата розширення. Тобто дотримання правил стандартного розподілу ресурсів комп'ютера - це не чиясь примха, а життєва необхідність.
Правда, останнім часом набула поширення знімаюча дані проблеми технологія автоматичного розподілу ресурсів Plug-and-Play (PnP, P&P), що можна перевести як «Вставляй і працюй». При цьому користувачу достатньо просто підключити свою плату до комп'ютера, а всі операції по розподілу ресурсів комп'ютер виконає самостійно, і будь-які конфлікти будуть автоматично усунені.
Але для цього необхідне обов'язкове виконання двох умов. По-перше, технологію PnP повинен підтримувати даний комп'ютер і його програмне забезпечення. По-друге, цю технологію повинен підтримувати пристрій, що підключається до комп'ютера. Визначити це досить просто: якщо на платі є перемички або механічні перемикачі для задання параметрів плати (адрес портів вводу/виводу, номери переривання, що використовується, базової адреси пам'яті, номера каналу ПДП), що переставляються, то можна сміливо стверджувати, що вибір конфігурації, облік стандартного розподілу ресурсів комп'ютера лягає на користувача. Комп'ютер тут не помічник. Звичайно ж, перед установкою в комп'ютер нової плати розширення слід уважно прочитати інструкцію і точно слідувати їй. Докладніше про роботу режиму PnP буде розказане нижче.
А зараз розглянемо прийнятий в персональних комп'ютерах стандартний розподіл ресурсів.
Про стандартний розподіл пам'яті вже мовилося в попередньому розділі. Трохи докладніше розподіл адрес пам'яті описаний в табл. 8.3 .
З таблиці видно, що для пам'яті, що входить до складу пристроїв вводу/виводу, відводиться зона всього лише в 92 Кбайта (адреси С8000...DFFFF). В цьому просторі може розташовуватися як оперативна пам'ять, так і постійна пам'ять пристроїв вводу/виводу. Іноді пам'ять пристроїв вводу/виводу захоплює також і зону адрес С0000...С7FFF.

 

Таблиця 8.3. Розподіл адрес пам'яті (адреси дані в шестнадцатеричном коді).


Адреси пам'яті

Призначення

000000...0003FF

Таблиця векторів переривань

000000...09FFFF

Пам'ять DOS і призначених для користувача програм

0А0000...0АFFFF

Пам'ять дисплея EGA або VGA     

0B0000...0B7FFF

Пам'ять монохромного дисплея MDA      

0B8000...0BFFFF

Пам'ять дисплея CGA

0C0000...0C3FFF

ПЗП BIOS для EGA/VGA    

0C8000...0DFFFF

Пам'ять пристроїв вводу/виводу   

0E0000...0EFFFF

Резерв ПЗП ВIOS на материнській платі

0F0000...0FFFFF

ПЗП BIOS на материнській платі  

Важливо пам'ятати, що крім цього розподілу, загального для будь-яких програмних і апаратних засобів, існують ще і розподіли пам'яті, специфічні для кожної операційної системи. Їх також необхідно враховувати щоб уникнути відмови при виконанні системних програм. Відзначимо, що в сучасних комп'ютерах, звичайно ж, не використовуються давно застарілі дисплеї стандартів CGA або MDA. Проте в тому випадку, якщо потрібна універсальність програмного забезпечення, треба враховувати і те, що його можуть спробувати запустити на комп'ютерах з подібними дисплеями.
Стандартний розподіл адрес в адресному просторі пристроїв вводу/виводу персонального комп'ютера приведений в табл. 8.4.
Як вже наголошувалося, стандарт допускає адресацію 64К пристроїв вводу/виводу (тобто можна використовувати 16 розрядів адреси). Проте велика більшість плат розширення для спрощення апаратури використовує тільки 10 молодших розрядів, що відповідає всього 1К (або 1024) адрес (від 000 до 3FF в шістнадцятковому коді). При цьому 16-розрядні порти вводу/виводу мають парні адреси, тобто їх може бути всього 512.
Таблиця 8.4. Розподіл адрес пристроїв вводу/виводу.                               


Адреса

Призначення

000...01F

Контролер ПДП 1

020...03F

Контролер переривань 1

040...05F

Програмований  таймер

060...06F

Контролер клавіатури

070...07F

Годинник реального часу

080...09F

Регістр сторінки ПДП

0A0...0BF

контролер переривань 2

0С0...0DF

контролер ПДП 2

0F0...0FF

Математичний співпроцесор        

170...177

Накопичувач на жорсткому диску (другий)                     

1F0...1F7

Накопичувач на жорсткому диску (перший)

200...207

Ігровий порт (джойстик)    

278...27F

Паралельний порт LPT2     

2С0...2DF

Адаптер EGA 2                    

2F8...2FF

Послідовний порт COM2

300...31F

Прототипна плата   

320...32F

Накопичувач на жорсткому диску XT

360...36F

Резервні адреси        

370...377

Накопичувач на гнучкому диску (другий)

378...37F

Паралельний порт LPT1     

380...38F

контролер бісинхронного обміну SDLC2

3A0...3AF

контролер бісинхронного обміну SDLC1

3B0...3DF

Адаптер VGA           

3B0...3BF

Адаптер дисплея MDA і принтера

3C0...3CF

Адаптер EGA 1                    

3D0...3DF

Адаптер СGA           

3F0...3F7

Накопичувач на гнучкому диску (перший)          

3F8...3FF

Послідовний порт COM1   

Як видно з таблиці, значна частина можливих адрес вже зайнята системними пристроями, вільних адрес не так багато. Резервні адреси - це ті, які зарезервовані під подальше розширення системи.
В табл. 8.5 представлено стандартний розподіл номерів апаратних переривань і відповідних їм номерів в таблиці векторів переривань (INT).
Як видно з таблиці, більшість входів IRQ зайнята системними ресурсами комп'ютера. Вільні (зарезервовані) тільки чотири канали: 10, 11, 12, 15, причому вони знаходяться на 16-розрядній частині роз'єму магістралі ISA. Правда, іноді в комп'ютерах застосовується тільки один паралельний порт або (набагато рідше) тільки один послідовний порт, і тоді вільними виявляються ще IRQ3 і IRQ5. Сигнали IRQ0...IRQ2, IRQ8 і IRQ13 задіяні на системній платі і недоступні платі розширення.
В комп'ютері використовуються два 8-розрядні контролери переривань. Сигнали IRQ0...IRQ7 відносяться до першого з них, а IRQ8...IRQ15 - до другого. Для того, щоб каскадувати контролери переривань задіяний вхід IRQ2 (мал. 8.6). У зв'язку з цим запити переривання мають наступні пріоритети обслуговування в порядку зростання: IRQ7, IRQ6, IRQ5, IRQ4, IRQ3, IRQ15, IRQ14, IRQ12, IRQ11, IRQ10, IRQ9.

 

Таблиця 8.5. Розподіл каналів апаратних переривань.                              


Номер переривання IRQ

INT

Призначення

0

08

Програмований таймер

1

09

контролер клавіатури

2

0A

Каскад другого контролера

8

70

Годинник реального часу (тільки АТ)

9

71

Програмно переадресовано на IRQ2        

10

72

Резерв

11

73

Резерв

12

74

Резерв

13

75

Математичний співпроцесор

14

76

контролер жорсткого диска

15

77

Резерв

3

0B

Послідовний порт COM2

4

0C

Послідовний порт COM1

5

0D

Паралельний порт LPT2     

6

0E

контролер гнучкого диска

7

0F

Паралельний порт LPT1

                  
Така схема включення склалася історично, оскільки в комп'ютері IBM PC XT використовувався тільки один 8-канальний контролер переривань, а при переході на IBM PC AT до нього був доданий другий контролер для подвоєння кількості каналів запитів переривань. В сучасних комп'ютерах обидва контролери переривань разом з іншими контролерами можуть входити до складу однієї і тієї ж мікросхеми, але сумісність розподілу переривань як і раніше забезпечується.



Мал. 8.6. Включення двох контролерів переривань.

Стандартний розподіл каналів запиту прямого доступу до пам'яті представлений в табл. 8.6.
Як і у випадку з контролерами переривань, тут застосовується два контролери, причому один з них каскадується через інший. На кожній лінії DRQ повинен бути один вихід ISA-пристрою. Канали, відповідні першому контролеру ПДП (сигнали DRQ0...DRQ3), призначені тільки для 8-бітового обміну, а відповідні другому контролеру (DRQ5...DRQ7) - для 16-бітового. Канал DRQ4 використовується для того, що каскадувати два контролери ПДП і тому неприступний користувачам. Сигнал запиту DRQ0 має найвищий пріоритет, сигнал DRQ7 - найнижчий. В IBM PC XT канал DRQ0 використовувався для регенерації динамічної пам'яті. Кожний канал ПДП може передавати дані в межах 16-мегабайтного адресного простору блоками завдовжки до 64 Кбайт (канали 0, 1, 2, 3) або до 128 Кбайт (канали 5, 6, 7).
Таблиця 8.6. Стандартний розподіл каналів прямого доступу до пам'яті.


Номер каналу ПДП

Призначення

0

Резервний

1

Контролер бісинхронного обміну SDLC

2

Накопичувач на гнучкому диску

3

Резервний     

4

Каскадує перший контролер

5

Резервний                

6

Резервний                

7

Резервний                

Природно, звичайному користувачу запам'ятати всю цю інформацію про розподіл ресурсів досить складно, до того ж при щонайменшій помилці можливі неприємності. Саме з цих міркувань фірмами Compaq Computer, Intel, Microsoft і Phoenix Technologies в 1993 році була запропонована технологія Plug-and-Play (PnP), що покладає всі турботи про конфігурацію комп'ютера на сам комп'ютер. Користувач при цьому може навіть нічого не знати про адресний простір, переривання і канали прямого доступу, він просто підключає плату, і вона зразу ж починає працювати правильно. Правда, при цьому всі компоненти комп'ютера (базова система вводу/виводу BIOS, операційна система, прикладне програмне забезпечення, пристрої, що підключаються) повинні підтримувати режим PnP. Врешті-решт, технологія PnP повинна працювати на всіх інтерфейсах комп'ютера, що використовуються: ISA, PCI, VLB, IDE, RS-232C і т.д. Найбільш же пристосована для цього системна шина PCI, що має спеціально передбачені засоби, що ще більш збільшує її шанси стати єдиним стандартом системної шини.
При включенні комп'ютера з PnP його програма початкового запуску BIOS визначає пристрої, які необхідні в процесі завантаження. Потім BIOS запрошує у кожного з цих пристроїв його унікальний номер (ідентифікатор), що зберігається в пам'яті PnP-пристрою. Після цього BIOS вирішує всі конфлікти між пристроями. При цьому пристрої, які не потрібні для завантаження комп'ютера, не обслуговуються.
Після завантаження операційної системи вступає в дію спеціальний програмний драйвер - менеджер конфігурації (configuration manager), який за допомогою драйверів-нумераторів шин (bus enumerators) визначає пристрої, вимагаючі системних ресурсів. Якщо підключений пристрій не підтримує PnP і не може видати інформацію про себе, то така інформація повинна бути закладена у формовану вручну базу даних. Вся зібрана інформація про поточну конфігурацію зберігається в оперативній пам'яті, в області hardware tree. Цю інформацію надалі використовує програма-арбітр ресурсів (resource arbitrator) при розподілі системних ресурсів між пристроями. Після цього менеджер конфігурації через нумератор  шин повідомляє PnP-пристрої про те, які ресурси комп'ютера їм привласнені, і дана інформація надалі зберігається в програмно доступних регістрах (або flash-EPROM) цих пристроїв. На цьому робота PnP по розподілу ресурсів закінчується, і далі комп'ютер функціонує як завжди, звертаючись до всіх пристроїв стандартним чином.

Відзначимо також, що в деяких комп'ютерах передбачена можливість так званого «гарячого підключення» зовнішніх пристроїв (тобто без виключення живлення комп'ютера). Режим PnP повинен підтримувати і цю можливість, розподіляючи ресурси не тільки при початковому завантаженні, але і у міру підключення нових пристроїв.

 

 

попередня тема наступна тема